package ar.uade.fain.ai.tpo.model;

import java.util.Date;



public class Producto {
	private Long id;
	private String nombre;
	private Double costo;
	private Date estacionDesde;
	private Date estacionHasta;
	private Categoria categoria;
	private Unidad unidad;
	private Proveedor proveedor;
	
	public Producto (){}
	
	
	public Producto(Long id) {
		super();
		this.id = id;
	}


	public Producto(Long id, String nombre, Double costo, Date estacionDesde,
			Date estacionHasta, Categoria categoria, Unidad unidad,
			Proveedor proveedor) {
		super();
		this.id = id;
		this.nombre = nombre;
		this.costo = costo;
		this.estacionDesde = estacionDesde;
		this.estacionHasta = estacionHasta;
		this.categoria = categoria;
		this.unidad = unidad;
		this.proveedor = proveedor;
	}

	public boolean isEnEstacion(){
		Date fechaActual = new Date();
		if (estacionDesde != null && estacionHasta != null){
			if (estacionDesde.after(fechaActual) && estacionHasta.before(fechaActual)){
				return true;
			}
		}
		return false;
	}
	
	
	
	
	public Double getStockTotal() {
		return null;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public double getCosto() {
		return costo;
	}

	public void setCosto(Double costo) {
		this.costo = costo;
	}

	public Date getEstacionDesde() {
		return estacionDesde;
	}

	public void setEstacionDesde(Date estacionDesde) {
		this.estacionDesde = estacionDesde;
	}

	public Date getEstacionHasta() {
		return estacionHasta;
	}

	public void setEstacionHasta(Date estacionHasta) {
		this.estacionHasta = estacionHasta;
	}

	public Categoria getCategoria() {
		return categoria;
	}

	public void setCategoria(Categoria categoria) {
		this.categoria = categoria;
	}

	public Unidad getUnidad() {
		return unidad;
	}

	public void setUnidad(Unidad unidad) {
		this.unidad = unidad;
	}

	public Proveedor getProveedor() {
		return proveedor;
	}

	public void setProveedor(Proveedor proveedor) {
		this.proveedor = proveedor;
	}


	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Producto other = (Producto) obj;
		if (id == null) {
			if (other.id != null)
				return false;
		} else if (!id.equals(other.id))
			return false;
		return true;
	}

}
